/*
 * Copyright (c) 2023, LXMS (lxinet.cn).
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package cn.lxinet.lxms.generator.service;

import cn.lxinet.lxms.generator.Config;
import cn.lxinet.lxms.generator.domain.DatabaseColumn;
import cn.lxinet.lxms.generator.domain.GeneratorParams;
import cn.lxinet.lxms.generator.domain.Result;
import cn.lxinet.lxms.generator.utils.GeneratorUtil;
import org.apache.commons.lang.Validate;
import java.util.List;

public class GeneratorService {

    /**
     * 代码生成
     * @return
     */
    public void generatorCode() {
        Config.tableList.forEach(table -> GeneratorUtil.generatorCode(getGeneratorParams(table)));
    }

    private GeneratorParams getGeneratorParams(GeneratorParams table) {
        String tableName = table.getTableName();
        //查询列信息
        Result result = new DataConnectionService().getTableColumns(tableName);
        Validate.isTrue(result.succeed(), "查询表字段出错");
        List<DatabaseColumn> columns = (List<DatabaseColumn>) result.getData();
        //生成代码
        table.setColumns(columns);
        return table;
    }

}
